When transmitting time-sensitive data, such as real-time audio and/or video data, communication schemes may use redundancy information to improve the reliability of communications. For example, a packet may be transmitted with redundancy information of/for a previous packet. The redundancy information may be used to resolve what was in the previous packet. This type of technique uses a larger amount of forward overhead than techniques that rely on requesting re-transmissions, but is useful for time-sensitive data.
Low Bitrate Redundancy (LBRR) is one type of redundancy scheme. In LBRR a very low bitrate encoded version of the immediately preceding packet is embedded in a current packet. This is illustrated in FIG. 3, in which three packets, P1, P2, P3, are shown. Within each packet, there is comprised a shaded region representative of redundancy information for a preceding packet. P1 is the first (and oldest) packet. Although P1 has the space for redundancy information, P1 has no preceding packet and so does not comprise redundancy information relating to a previous packet. P2 is the second packet and is sent immediately after P1. As P1 is the packet immediately preceding P2, P2 comprises redundancy information for P1. More particularly, P2 comprises an encoded version of P1 that might, but not necessarily, have a lower bit-rate than P1. This is represented by the shaded box labelled “P1” in P2. P3 is the third packet and is sent immediately after P2. As P2 is the packet immediately preceding P3, P3 comprises redundancy information for P2. More particularly, P3 comprises an encoded version of P2 that might, but not necessarily, have a lower bit-rate than P2. This is represented by the shaded box labelled “P2” in P3. Such a scheme of sending extra information for recovering a lost packet is also known as Forward Error Correction.
Some codecs (a codec is a device or mechanism for encoding and/or decoding data) allow for several payloads to be sent in a single packet. A payload is a unit of data specified for transmission by a protocol operating at a higher level (higher layer) than the codec, such as a protocol operating at the application layer. Thus a codec payload is a unit of data understood by the codec. The payload may be passed to a codec, which forms a packet comprising multiple payloads. Although the multiple payloads may be sometimes individually referred to as “payloads”, it is understood that these are in fact smaller, constituent payloads forming the overall packet payload (for example, by aggregation). For the rest of the description, the term “payload” will be used to denote the total packet payload whilst the term “sub-payload” will be used to denote any of the smaller payloads that in combination make up a packet. The sub-payloads may make up a packet by concatenation (where the sub-payloads are simply added one after the other into the packet to be transmitted), or by using a repacketization scheme (where the sub-payloads are reformatted prior to insertion into a packet).
An example of a packet comprising multiple sub-payloads is shown in FIG. 4. Two packets are shown in FIG. 4: P1′ and P2′. P1′ comprises three sub-payloads, P1.1′, P1.2′ and P1.3′. In the present example, the sub-payloads are sorted in a time ordered manner, according to the order in which the sub-payloads arrive at the codec (i.e. as input at the transmit side). Sub-payload P1.1′ is the first sub-payload in P1′ and is so the oldest sub-payload in packet P1′. In other words, sub-payload P1.1′ arrived at the transmitter's codec prior to all of the other sub-payloads. Thus sub-payload P1.1′ does not comprise any redundancy information. Sub-payload P1.2′ is the second sub-payload in P1′ and so comprises redundancy information for sub-payload P1.1′. Sub-payload P1.3′ is the third sub-payload in P1′ and so comprises redundancy information for sub-payload 1.2′. Packet P2′ comprises three sub-payloads, P2.1′, P2.2′ and P2.3′. Sub-payload P2.1′ is the first sub-payload in P2′. As there was a preceding sub-payload (P1.3′), sub-payload P2.1′ comprises redundancy information for sub-payload P1.3′. Sub-payload P2.2′ is the second sub-payload in P2′ and comprises redundancy information for sub-payload P2.1′. Sub-payload 2.3′ is the third sub-payload in P2′ and so comprises redundancy information for sub-payload 2.2′.